<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
    <% String path=request.getContextPath(); String basePath=request.getScheme() + "://" + request.getServerName() + ":"
        + request.getServerPort() + path + "/" ; %>

        <!DOCTYPE html>
        <html>

        <head>
            <base href="<%=basePath%>">

            <title>到货验收</title>

            <meta http-equiv="pragma" content="no-cache">
            <meta http-equiv="cache-control" content="no-cache">
            <meta http-equiv="expires" content="0">
            <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
            <meta http-equiv="description" content="This is my page">
            <!--
            <link rel="stylesheet" type="text/css" href="styles.css">
            -->
        </head>
        <style>
            .tdText {
                text-align: right;
                width: 400px;
            }

            input:disabled {
                background-color: #dae1ed;
            }
        </style>

        <body>
            <%@ include file="/WEB-INF/jsp/common/header.jsp" %>
                <%@ include file="/WEB-INF/jsp/common/loadDiv.jsp" %>

                    <script type="text/javascript">
                        $(function () {
                            $('#startTime').datebox('setValue', getBeforeCurrentDate30Days());
                            $('#endTime').datebox('setValue', getNowFormatDate());
                            // 初始化询价书列表
                            bingGrid();
                            // 初始化采购方案选择页面
                            bingProgramsGrid();
                            // 绑定文件上传的点击事件
                            $("#uploadbtn").bind("click", function (e) {
                                $("#uploadpicker").click();
                            });
                        });


                        // json 转form-data
                        function JsonToFormData(params) {
                            var formData = new FormData();
                            Object.keys(params).forEach((key) => {
                                formData.set(key, params[key])
                                formData.append(key, formData.get(key));
                            })
                            return formData;

                        }
                    </script>

                    <div class="query_criteria" id="query_criteria">
                        <div style="margin: 5px 0px">
                            <label style="font-size: 12px;">创建时间：</label> <input class="easyui-datebox" name="startTime"
                                id="startTime"
                                data-options="required:true,showSeconds:false,formatter:myformatter,parser:myparser"
                                value="" style="width: 150px"> <label style="font-size: 10px;">~</label> <input
                                class="easyui-datebox" name="endTime" id="endTime"
                                data-options="required:true,showSeconds:false,formatter:myformatter,parser:myparser"
                                style="width: 150px" /> <label style="margin-left: 20px; font-size: 12px;">状态：</label>
                            <input class="easyui-combobox" id="status" name="status" style="width: 80px;" data-options="valueField: 'value',editable:false,
		textField: 'label',panelHeight:'auto',data: [{
			label: '全部',
			value: ''
		},{
			label: '待提交',
			value: '0',
			'selected':true
		},{
			label: '已提交',
			value: '1'
		}]">
                            <a id="search" href="javascript:void(0)" class="easyui-linkbutton"
                                data-options="iconCls:'icon-search'" onclick="selectInquiryList()">查询</a>
                            <a id="export" href="javascript:void(0)" class="easyui-linkbutton"
                                data-options="iconCls:'icon-export'" onclick="exportInquiryList()">导出</a>
                        </div>
                        <table id="tt"></table>

                        <!--  询价书新增、编辑页面  -->
                        <div id="add" class="easyui-window" closed="true" modal="true" title="询价书"
                            style="width: 900px; height: 400px; padding: 5px 5px">
                            <form id="frmInquiry">
                                <div class="easyui-tabs" id="tabs" style="width: 875px; height: 350px">
                                    <div title="基础信息" style="padding: 5px;">
                                        <table>
                                            <tr style="margin-bottom: 10px">
                                                <td colspan="1" class="tdText">
                                                    <div onclick="selectProgram()">
                                                        <label style="width: 40%; text-align: right;">采购方案：</label>
                                                        <input data-options="prompt:'点击查询采购方案'" id="gramName"
                                                            class="easyui-textbox" style="width: 60%"> <input
                                                            type="hidden" id="gramId"> <input id="inqId" type="hidden">
                                                    </div>
                                                </td>
                                                <td class="tdText"><label
                                                        style="width: 40%; text-align: right;">方案编码：</label> <input
                                                        name="inqCode" id="inqCode" class="easyui-validatebox textbox"
                                                        style="width: 60%" data-options="disabled:true"></td>
                                                <!-- <td class="tdText"><label
                                                        style="width: 40%; text-align: right;">询价名称：</label> <input
                                                        name="inqName" id="inqName" class="easyui-validatebox textbox"
                                                        data-options="required:true" style="width: 60%"></td> -->
                                            </tr>
                                            <tr>
                                                <td class="tdText"><label
                                                        style="width: 40%; text-align: right;">采购方式：</label> <input
                                                        name="inqOfferMode" id="inqOfferMode" class="easyui-textbox"
                                                        data-options="disabled:true" style="width: 60%"></td>
                                            </tr>
                                            <tr>
                                                <!-- <td class="tdText"><label for="remark" style="width: 40%">备注：</label>
                                                    <input class="easyui-textbox" name="remark" id="remark" value=""
                                                        style="width: 60%">
                                                </td> -->
                                                <!-- <td class="tdText"><label for="inqStartTime"
                                                        style="width: 40%">报价开始时间：</label> <input
                                                        class="easyui-datetimebox" name="inqStartTime" id="inqStartTime"
                                                        data-options="currentText:'今天',closeText:'关闭',okText:'确定',required:true,showSeconds:true,formatter:myformatterDateTime,parser:myparserDateTime"
                                                        value="" style="width: 60%"></td>
                                                <td class="tdText"><label for="inqEndTime"
                                                        style="width: 40%">报价结束时间：</label> <input name="inqEndTime"
                                                        id="inqEndTime" class="easyui-datetimebox"
                                                        data-options="currentText:'今天',closeText:'关闭',okText:'确定',required:true,showSeconds:true,formatter:myformatterDateTime,parser:myparserDateTime"
                                                        style="width: 60%"></td> -->
                                            </tr>
                                            <!-- <tr>
                                                <td class="tdText"><label for="inqRevealTime"
                                                        style="width: 40%">报价揭示时间：</label> <input name="inqRevealTime"
                                                        id="inqRevealTime" class="easyui-datetimebox"
                                                        data-options="currentText:'今天',closeText:'关闭',okText:'确定',required:true,showSeconds:true,formatter:myformatterDateTime,parser:myparserDateTime"
                                                        style="width: 60%"></td>
                                            </tr> -->
                                        </table>
                                    </div>
                                    <div id="suppliesdetailPanel" title="物资明细" style="padding: 5px;">
                                        <table id="suppliesdetailDataGrid"></table>
                                    </div>
                                    <div id="suppliersdetailPanel" title="供应商明细" style="padding: 5px;">
                                        <table id="suppliersdetailDataGrid"></table>
                                    </div>
                                    <div title="附件" style="padding: 5px;">
                                        <table>
                                            <tr>
                                                <td colspan="3"><input type="button" id="uploadbtn" value="选择文件..." />
                                                    <input type="file" id="uploadpicker" accept=""
                                                        onchange="changeFile()" multiple style="display: none;" />
                                                </td>
                                            </tr>
                                            <tr>
                                                <td><label style="width: 40%; text-align: right;">附件下载：</label>
                                                    <ul id="checkfileList"></ul>
                                                </td>
                                            </tr>
                                        </table>
                                    </div>

                                </div>
                            </form>
                            <div id="selectProgramWindow" closed="true" modal="true" class="easyui-window"
                                title="选择采购方案" style="width: 900px; height: 430px; padding: 10px;">
                                <table id="programsDataGrip"></table>
                            </div>
                        </div>
                    </div>
        </body>
        <script type="text/javascript">
            var selectedFileList = [];//已选文件列表
            var succsessCount = 0;//上传成功文件个数
            var errorCount = 0;//上传失败文件个数
            var editIndex = undefined;

            // 行编辑结束
            function endEditing() {
                if (editIndex == undefined) {
                    return true
                }
                if ($('#suppliesdetailDataGrid').datagrid('validateRow', editIndex)) {
                    $('#suppliesdetailDataGrid').datagrid('endEdit', editIndex);
                    editIndex = undefined;
                    return true;
                } else {
                    return false;
                }
            }

            /**
             * 编辑询价书
             */
            function editrow() {
                let row = $('#tt').datagrid('getSelected');
                if (!row) {
                    $.messager.alert('消息', '请选择一条数据');
                    return
                }
                if (+row.oaStatus == '1') {
                    $.messager.alert('消息', '该数据已提交，无法编辑');
                    return
                }
                let index = $('#tt').datagrid('getRowIndex', row);

                setDetailWindow(index, 'edit')
                $('#tabs').tabs('select', 0);

            }

            /**
             *  新增询价书
             */
            function addInquiry() {
                $('#tabs').tabs({
                    tools: [{
                        text: '保存',
                        iconCls: 'icon-save',
                        handler: function () {
                            saveInquiry('save');
                        }
                    }, {
                        text: '提交',
                        iconCls: 'icon-ok',
                        handler: function () {
                            $.messager.confirm('提示', '提交后无法再次编辑，确定要提交吗?',
                                function (r) {
                                    if (r) {
                                        saveInquiry('submit')
                                    }
                                });
                        }
                    }]
                })
                // 清空form
                $('#frmInquiry').form('clear');
                // 重置物资列表
                setsuppliesdetailDataGrid([]);
                // 重置供应商列表
                setsuppliersdetailDataGrid([])
                $('#selectProgramWindow').window({
                    onBeforeOpen: function () {
                        return true
                    }
                })
                $('#add').window('open');
                $('#tabs').tabs('select', 0);
            }

            // 选择采购方案
            function selectProgram() {
                let dg = $('#programsDataGrip');
                dg.datagrid('enableFilter');
                dg.datagrid('load', {
                    status: '1'
                })
                $('#selectProgramWindow').window('open');
            }

            // 加载采购方案列表
            function bingProgramsGrid() {
                let dg = $('#programsDataGrip');
                dg.datagrid({
                    url: 'rd/program/selectProgramList?status=1',
                    iconCls: 'icon-application',
                    clientPaging: false,
                    remoteFilter: true,
                    filterDelay: 0,
                    width: 860,
                    height: 350,
                    nowrap: true,
                    rownumbers: true,
                    animate: false,
                    collapsible: false,
                    singleSelect: true,
                    pageSize: 10,
                    remoteSort: false,
                    pagination: true,
                    frozenColumns: [[{
                        field: 'gramId',
                        title: '采购方案ID',
                        hidden: true,
                        sortable: true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'gramCode',
                        title: '方案编码',
                        //sortable : true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'gramName',
                        title: '方案名称',
                        sortable: true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },]],
                    columns: [
                        [{
                            field: 'gramDeptCode',
                            title: '采购单位编码',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        }, {
                            field: 'gramDeptName',
                            title: '采购单位名称',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'gramBudget',
                            title: '预算金额',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'gramIsUrgent',
                            title: '是否紧急',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'gramDetail',
                            title: '相关说明',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'createName',
                            title: '创建人',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'createTime',
                            title: '创建时间',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'updateTime',
                            title: '更新时间',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        },
                        {
                            field: 'status ',
                            title: '状态',
                            sortable: true,
                            formatter: function (val, rec) {
                                return val ? unescape(val) : ''
                            }
                        }
                        ]
                    ],
                    toolbar: [{
                        text: '确定',
                        iconCls: 'icon-ok',
                        handler: function () {
                            //获取选择的方案内容
                            getSelected();
                        }
                    }],
                    onLoadSuccess: function () {

                    },
                    onDblClickRow: function () {
                    }
                });
                dg.datagrid('enableFilter');
            }

            // 获取选择的采购方案行
            function getSelected() {
                var row = $('#programsDataGrip').datagrid('getSelected');
                if (row) {
                    // 根据采购方案id，查询采购方案详细信息
                    getProgramDetail(row.gramId);
                } else {
                    $.messager.alert('消息', '请选择一条数据');
                }
            }

            // 根据方案ID查询方案详情
            function getProgramDetail(gramId) {
                if (!gramId) return
                $.ajax({
                    type: 'get',
                    dataType: 'json',
                    url: "rd/program/selectProInfo?gramId=" + gramId,
                    success: function (data) {
                        if (data.code != 60200) {
                            $.messager.alert('消息', '未查询到数据');
                        } else {
                            $('#selectProgramWindow').window('close');
                            let programDetail = data.data;
                            // 表单赋值
                            $('#gramName').textbox('setValue', programDetail.gramName); // 方案名称
                            $('#inqCode').val(programDetail.gramCode); // 方案名称
                            //  $('#inqDealMode').val(programDetail.gramDealMode); //
                            $('#inqOfferMode').textbox('setValue', programDetail.gramMode)
                            //    $('#inqOfferMode').textbox('setValue', programDetail.gramMode)
                            $('#gramId').val(programDetail.gramId); //
                            //   $('#inqDealMode').val(programDetail.gramContractType); //
                            // $('#gramBudget').numberbox('setValue', programDetail.gramBudget); // 预算金额

                            // 物资明细datagrid赋值
                            if (programDetail.purchaseProgramMms) {
                                setsuppliesdetailDataGrid(programDetail.purchaseProgramMms);
                            }
                            // 供应商赋值
                            if (programDetail.purchaseSupplies) {
                                setsuppliersdetailDataGrid(programDetail.purchaseSupplies);
                            }
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                })
            }


            /**
             * 设置询价详情页面
             * @param inqId
             * @param action
             */
            function setDetailWindow(index, action) {
                if (!action) {
                    action = 'detail';
                }
                $('#selectProgramWindow').window({
                    onBeforeOpen: function () {
                        return false
                    }
                })
                const rows = $('#tt').datagrid('getRows');

                let row = rows[index];
                if (row.oaStatus == '0') {
                    $('#tabs').tabs({
                        tools: [{
                            text: '保存',
                            iconCls: 'icon-save',
                            handler: function () {
                                saveInquiry('save');
                            }
                        }, {
                            text: '提交',
                            iconCls: 'icon-ok',
                            handler: function () {
                                $.messager.confirm('提示', '提交后无法再次编辑，确定要提交吗?',
                                    function (r) {
                                        if (r) {
                                            saveInquiry('submit')
                                        }
                                    });
                            }
                        }]
                    })
                } else {
                    $('#tabs').tabs({
                        tools: []
                    })
                }
                $.ajax({
                    type: 'get',
                    dataType: 'json',
                    url: "rd/program/selectProInfo?gramId=" + row.gramId,
                    success: function (data) {
                        if (data.code != 60200) {
                            $.messager.alert('消息', '未查询到数据');
                        } else {
                            let inqDetail = data.data;
                            // 表单赋值
                            $('#gramName').textbox('setValue', inqDetail.gramName); // 方案名称
                            $('#gramId').val(inqDetail.gramId); // 方案ID
                            $('#inqId').val(inqDetail.inqId); // 询价ID
                            $('#inqCode').val(inqDetail.inqCode); // 询价编码
                            $('#inqName').val(inqDetail.inqName); // 询价名称
                            $('#inqOfferMode').textbox('setText', inqDetail.inqOfferMode);
                            $('#inqOfferMode').textbox('setValue', inqDetail.inqOfferMode);
                            //  $('#inqDealMode').val(inqDetail.inqDealMode);
                            //  $('#inqClause').val(inqDetail.inqClause);
                            $('#remark').val(inqDetail.remark);
                            $('#inqStartTime').datetimebox('setValue', inqDetail.inqStartTime);
                            $('#inqEndTime').datetimebox('setValue', inqDetail.inqEndTime);
                            $('#inqRevealTime').datetimebox('setValue', inqDetail.inqRevealTime);
                            //  $('#inqActualTime').datebox('setValue', inqDetail.inqActualTime);
                            $('#inqActualName').val(inqDetail.inqActualName);
                            // 物资明细datagrid赋值
                            if (inqDetail.purchaseProgramMms) {
                                setsuppliesdetailDataGrid(inqDetail.purchaseProgramMms);
                            }
                            // 供应商赋值
                            $.ajax({
                                type: 'get',
                                dataType: 'json',
                                url: "rd/program/selectProInfo?gramId=" + row.gramId,
                                success: function (data) {
                                    console.log('grid:', data.data);
                                    setsuppliersdetailDataGrid(data.data.purchaseSupplies);
                                }
                            });
                            getFileList(inqDetail.gramId)
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                })
                $('#add').window('open');
            }

            // 物资datagrid构建
            function setsuppliesdetailDataGrid(gridData, action) {
                if (!action) {
                    action = 'detail'
                }
                let dg = $('#suppliesdetailDataGrid');
                dg.datagrid({
                    data: gridData,
                    // url: 'rd/program/selectProgramList',
                    iconCls: 'icon-application',
                    clientPaging: false,
                    remoteFilter: true,
                    filterDelay: 0,
                    width: 850,
                    height: 300,
                    nowrap: true,
                    rownumbers: true,
                    animate: false,
                    collapsible: false,
                    singleSelect: true,
                    pageSize: 10,
                    remoteSort: false,
                    pagination: true,
                    frozenColumns: [[{
                        field: 'mmId',
                        title: '物资ID',
                        hidden: true,
                        sortable: true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    }, {
                        field: 'inqId',
                        title: '询价id',
                        hidden: true,
                        sortable: true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'planId',
                        title: '采购计划_id',
                        hidden: true,
                        sortable: true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'gramId',
                        title: '方案id',
                        hidden: true,
                        sortable: true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'mmCode',
                        title: '物资编码',
                        // 过滤条件小于、大于
                        op: ['less', 'greater'],
                        //sortable : true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'mmDetail',
                        title: '物资描述',
                        sortable: true,
                        width: 210,
                        formatter: function (val, rec) {
                            if (val) {
                                return '<span title="' + val + '">' + val + '</span>';
                            } else {
                                return val;
                            }
                        }
                    },]],
                    columns: [
                        [
                            {
                                field: 'gramNeedNum',
                                title: '需求计划量',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramPurNum',
                                title: '采购量',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'mmCategory',
                                title: '物资品名',
                                sortable: true,
                                width: 100,
                                /*editor: {
                                    type: 'numberbox',
                                    options: {
                                        precision: 0
                                    }
                                }*/
                            },
                            {
                                field: 'mmMain',
                                title: '主特征',
                                sortable: true,
                                width: 100,
                                /*editor: {
                                    type: 'numberbox',
                                    options: {
                                        precision: 0
                                    }
                                },*/
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'mmSecond',
                                title: '副特征',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'mmNature',
                                title: '计量性质',
                                sortable: true,
                                width: 100,
                                /*  editor: {
                                      type: 'numberbox',
                                      options: {
                                          precision: 0
                                      }
                                  },*/
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'mmUnit',
                                title: '计量单位',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return unescape(val ? val : '')
                                }
                            },
                            {
                                field: 'mmUnitDetail',
                                title: '计量单位描述',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return unescape(val ? val : '')
                                }
                            },
                            {
                                field: 'mmTypeCode',
                                title: '物资类别编码',
                                sortable: true,
                                width: 100,
                                /* editor: {
                                     type: 'numberbox',
                                     options: {
                                         precision: 0
                                     }
                                 },*/
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'mmTypeName',
                                title: '物资类别名称',
                                sortable: true,
                                /*editor: {
                                    type: 'numberbox',
                                    options: {
                                        precision: 0
                                    }
                                },*/
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramStockNum',
                                title: '库存量',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramNeedDate',
                                title: '需用日期',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramDevice',
                                title: '设备位号',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramQm',
                                title: '质量技术要求',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramUse',
                                title: '用途',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramUseName',
                                title: '使用人姓名',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramUseTel',
                                title: '使用人联系方式',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramOutType',
                                title: '出库类型',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'gramRemark',
                                title: '行备注',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planPurNum',
                                title: '采购计划量',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            }, {
                                field: 'gramPurNum',
                                title: '采购量',
                                width: 100,
                                sortable: true,
                                //                         editor: {
                                //                             type: 'numberbox',
                                //                             options: {
                                //                                 precision: 2,
                                //                                 required:true
                                //                             }
                                //                         },
                                formatter: function (val, rec) {
                                    return unescape(val ? val : '')
                                }
                            },
                            {
                                field: 'planTransfer',
                                title: '分交类型',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planCorpCode',
                                title: '使用公司编码',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planCorpName',
                                title: '使用公司名称',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planDeptCode',
                                title: '使用单位编码',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planDeptName',
                                title: '使用单位名称',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planIsContract',
                                title: '是否合同',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planProType',
                                title: '项目类型',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planGoodType',
                                title: '资产/费用/存货',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planGoodType',
                                title: '评估类型',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planMeanCode',
                                title: '资产编码',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planMeanDetail',
                                title: '资产描述',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planCostCode',
                                title: '成本中心编码',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planCostDetail',
                                title: '成本中心描述',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planOrderCode',
                                title: '订单编码',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planOrderDetail',
                                title: '订单描述',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planFactoryCode',
                                title: '到货工厂',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planFactoryName',
                                title: '到货工厂描述',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planIsReturn',
                                title: '退货标记',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planUnderDate',
                                title: '归口日期',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            /* {
                                 field: 'gramMmCategory',
                                 title: '物资品名',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramMmMain',
                                 title: '主特征',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramMmSecond',
                                 title: '副特征',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramMmNature',
                                 title: '计量性质',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramMmTypeCode',
                                 title: '物资类别编码',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramMmTypeName',
                                 title: '物资类别名称',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramDevice',
                                 title: '设备位号',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramQm',
                                 title: '质量技术要求',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramUse',
                                 title: '用途',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramUseName',
                                 title: '使用人姓名',
                                 sortable: true,
                                 width: 100,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },
                             {
                                 field: 'gramIsUrgent',
                                 title: '是否紧急',
                                 width: 100,
                                 sortable: true,
                                 formatter: function (val, rec) {
                                     return val ? unescape(val) : ''
                                 }
                             },*/
                            {
                                field: 'remark',
                                title: '备注',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            {
                                field: 'planNedType',
                                title: '需求类型',
                                sortable: true,
                                width: 100,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : ''
                                }
                            },
                            /*  {
                                  field: 'createName',
                                  title: '创建人',
                                  sortable: true,
                                  width: 100,
                                  formatter: function (val, rec) {
                                      return val ? unescape(val) : ''
                                  }
                              },
                              {
                                  field: 'createTime',
                                  title: '创建时间',
                                  sortable: true,
                                  width: 100,
                                  formatter: function (val, rec) {
                                      return val ? unescape(val) : ''
                                  }
                              },
                              {
                                  field: 'updateTime',
                                  title: '更新时间',
                                  sortable: true,
                                  width: 100,
                                  formatter: function (val, rec) {
                                      return val ? unescape(val) : ''
                                  }
                              },
                              {
                                  field: 'status ',
                                  title: '状态',
                                  sortable: true,
                                  width: 100,
                                  formatter: function (val, rec) {
                                      return val ? unescape(val) : ''
                                  }
                              }*/
                        ]
                    ],
                    onLoadSuccess: function () {
                    },
                    onEndEdit: function (index, row) {
                    },
                    // 行单击事件
                    onClickRow: function (index, rowData) {
                        if (editIndex != index) {
                            if (endEditing()) {
                                $('#suppliesdetailDataGrid').datagrid('selectRow', index).datagrid('beginEdit',
                                    index);
                                editIndex = index;
                            } else {
                                $('#suppliesdetailDataGrid').datagrid('selectRow', editIndex);
                            }
                        } else if (editIndex != undefined) { //如果不相等，说明已经打开编辑器了，需要关闭编辑器
                            $('#suppliesdetailDataGrid').datagrid('endEdit', editIndex);
                            editIndex = undefined;
                        }
                    },
                });
            }

            // 供应商datagrid构建
            function setsuppliersdetailDataGrid(gridData) {
                let dg = $('#suppliersdetailDataGrid');
                dg.datagrid({
                    data: gridData,
                    iconCls: 'icon-application',
                    clientPaging: false,
                    remoteFilter: true,
                    filterDelay: 0,
                    width: 850,
                    height: 300,
                    nowrap: true,
                    rownumbers: true,
                    animate: false,
                    collapsible: false,
                    singleSelect: true,
                    pageSize: 10,
                    remoteSort: false,
                    pagination: true,
                    frozenColumns: [[{
                        field: 'infId',
                        title: '供应商',
                        hidden: true,
                        sortable: true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'inqId',
                        title: '询价id',
                        hidden: true,
                        sortable: true,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'infCode',
                        title: '供应商编码',
                        op: ['less', 'greater'],
                        //sortable : true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },
                    {
                        field: 'infName',
                        title: '供应商名称',
                        sortable: true,
                        width: 100,
                        formatter: function (val, rec) {
                            return val ? unescape(val) : ''
                        }
                    },]],
                    columns: [
                        [
                            {
                                field: 'infCreditCode',
                                title: '社会信用代码',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infCountry',
                                title: '国家',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infProvince',
                                title: '地区',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infCity',
                                title: '地市',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infAddress',
                                title: '单位地址',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infMobile',
                                title: '手机',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }, {
                                field: 'infContactsName',
                                title: '联系人姓名',
                                sortable: true,
                                formatter: function (val, rec) {
                                    return val ? unescape(val) : '';
                                }
                            }
                        ]
                    ],
                    onLoadSuccess: function () {
                    },
                    onDblClickRow: function () {
                    }
                });
            }

            // 导出为Excel
            function exportInquiryList() {
                let startTime = $('#startTime').datebox('getValue')
                let endTime = $('#endTime').datebox('getValue')
                let status = $('#status').combobox('getValue')

                var form = [];
                form.push('startTime=' + (startTime ? startTime : ''));
                form.push('endTime=' + (endTime ? endTime : ''));
                form.push('status=' + (status ? status : ''));
                let url = 'api/rd/export'
                let xhr = new XMLHttpRequest()
                xhr.open('POST', url, true)
                xhr.setRequestHeader('token', localStorage.getItem('token'));
                xhr.setRequestHeader('userType', localStorage.getItem('userType'));
                xhr.responseType = 'blob'
                xhr.onload = function () {
                    if (this.status == 200) {
                        let blob = this.response
                        let reader = new FileReader()
                        reader.readAsDataURL(blob)
                        reader.onload = function (e) {
                            let a = document.createElement('a')
                            a.download = '询价书' + new Date().getTime() + '.xlsx'
                            a.href = e.target.result
                            $('body').append(a)
                            a.click()
                            $(a).remove()
                        }
                    }
                }
                xhr.send(form.join('&'))
            }

            //查询询价书
            function selectInquiryList() {
                let startTime = $('#startTime').datebox('getValue');
                let endTime = $('#endTime').datebox('getValue');
                let status = $('#status').combobox('getValue');
                let dg = $('#tt');
                dg.datagrid('enableFilter');
                dg.datagrid('load', {
                    startTime: startTime ? startTime : '',
                    endTime: endTime ? endTime : '',
                    status: status ? status : ''
                })
            }

            function bingGrid() {
                let startTime = $('#startTime').datebox('getValue');
                let endTime = $('#endTime').datebox('getValue');
                let status = $('#status').combobox('getValue');
                let dg = $('#tt');
                dg.datagrid({
                    title: '订单列表',
                    queryParams: {
                        startTime: startTime ? startTime : '',
                        endTime: endTime ? endTime : '',
                        status: status
                    },
                    url: 'rd/order/selectList',
                    iconCls: 'icon-application',
                    clientPaging: false,
                    remoteFilter: true,
                    filterDelay: 0,
                    width: getWidth(0.98),
                    height: 415,
                    nowrap: true,
                    rownumbers: true,
                    animate: false,
                    collapsible: false,
                    singleSelect: true,
                    pageSize: 10,
                    remoteSort: true,
                    pagination: true,
                    frozenColumns: [
                        [{
                            field: 'gramCode',
                            title: '方案编码',
                            sortable: true,
                            formatter: function (val, rec, index) {
                                return '<a href="javascript:void(0)" onclick="setProgramDetailWindowValue(' +
                                    index + ',' + "'detail'" + ')">' + (val ? val : '') + '</a>'
                            }
                        }, {
                            field: 'gramName',
                            title: '方案名称',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },]
                    ],
                    columns: [
                        [{
                            field: 'gramId',
                            title: '采购方案ID',
                            hidden: true,
                            sortable: true,
                            width: 100,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },

                        {
                            field: 'gramMode',
                            title: '采购方式',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },

                        // {
                        //     field: 'gramIsInside',
                        //     title: '内部外部',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val == '1' ? '内部' : '外部')
                        //     }
                        // },
                        // {
                        //     field: 'gramFlow',
                        //     title: '业务流程',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val ? val : '')
                        //     }
                        // },
                        // {
                        //     field: 'gramChoseMode',
                        //     title: '选商方式',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val ? val : '')
                        //     }
                        // }, 
                        {
                            field: 'gramDealMode',
                            title: '成交方式',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        {
                            field: 'gramDeptCode',
                            title: '采购单位编码',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        // {
                        //     field: 'gramContractType',
                        //     title: '合同类型',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val == '1' ? '非贸易' : '贸易')
                        //     }
                        // },
                        {
                            field: 'gramDeptName',
                            title: '采购单位名称',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        // {
                        //     field: 'gramBudget',
                        //     title: '预算金额',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val ? val : '')
                        //     }
                        // },
                        // {
                        //     field: 'gramIsUrgent',
                        //     title: '是否急用',
                        //     sortable: true,
                        //     formatter: function (val, rec) {
                        //         return unescape(val == '1' ? '是' : '否')
                        //     }
                        // },
                        {
                            field: 'createName',
                            title: '制单人名称',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        {
                            field: 'createTime',
                            title: '创建时间',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        {
                            field: 'updateTime',
                            title: '更新时间',
                            sortable: true,
                            formatter: function (val, rec) {
                                return unescape(val ? val : '')
                            }
                        },
                        {
                            field: 'oaStatus',
                            title: '状态',
                            sortable: true,
                            formatter: function (val, rec) {
                                let status = val ? val : '';
                                return unescape(status == '0' ? '待提交' : (status == '2' ? '已完成' : '已提交'));
                            }
                        }
                        ]
                    ],
                    toolbar: [{
                        text: '新增',
                        iconCls: 'icon-add',
                        handler: function () {
                            addInquiry();
                        }
                    },
                        '-',
                    {
                        text: '编辑',
                        iconCls: 'icon-edit',
                        handler: function () {
                            editrow();
                        }
                    },
                        //     '-',
                        // {
                        //     text: '删除',
                        //     iconCls: 'icon-cancel',
                        //     handler: function () {
                        //         //删除
                        //         var row = $('#tt').datagrid('getSelected');
                        //         if (row) {
                        //             if (+row.status == '1') {
                        //                 $.messager.confirm('提示', '已提交的数据无法删除')
                        //                 return
                        //             } else {
                        //                 $.messager.confirm('提示', '确定要删除【' +
                        //                     unescape(row.inqCode) + '】此询价书吗?',
                        //                     function (r) {
                        //                         if (r) {
                        //                             del(row);
                        //                         }
                        //                     });
                        //             }

                        //         } else {
                        //             $.messager.alert('消息', '请选中一个要删除的数据');
                        //         }
                        //     }
                        // },
                        '-',
                    {
                        text: '撤回',
                        iconCls: 'icon-undo',
                        handler: function () {
                            var row = $('#tt').datagrid('getSelected');
                            if (row) {
                                if (row.status == '2') {
                                    $.messager.alert('提示', '该单据已完成，无法撤回')
                                    return
                                }
                                if (+row.oaStatus != '1') {
                                    $.messager.alert('提示', '该单据已完成，无法撤回')
                                    return
                                } else {
                                    $.messager.confirm('提示', '确定要撤回【' +
                                        unescape(row.inqCode) + '】此询价书吗?',
                                        function (r) {
                                            if (r) {
                                                backInquiry(row);
                                            }
                                        });
                                }

                            } else {
                                $.messager.alert('消息', '请选中一个要撤回的数据');
                            }
                        }
                    }
                    ],
                    onLoadSuccess: function () {
                    },
                    onDblClickRow: function () {
                        editrow();
                    }
                });

                dg.datagrid('enableFilter');
            }

            // 撤回
            function backInquiry(row) {
                // let inqId = row.inqId;

                const PurchaseInquiryVO = {
                    "gramId": row.gramId
                }
                $.ajax({
                    type: "post",
                    dataType: "json",
                    data: JSON.stringify(PurchaseInquiryVO),
                    contentType: "application/json",
                    url: "rd/program/backProgram",
                    success: function (data) {
                        $.messager.alert('消息', data.msg);
                        if (data.code != 60200) {
                        } else {
                            let dg = $('#tt');
                            dg.datagrid('enableFilter');
                            dg.datagrid('load');
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                });
            }

            //删除
            function del(row) {
                let inqId = row.inqId;
                $.ajax({
                    type: "delete",
                    url: "rd/delInquiry?inqId=" + inqId,
                    // data: JSON.stringify(queryData),
                    success: function (data) {
                        if (data.code != 60200) {
                            $.messager.alert('消息', data.msg);
                        } else {
                            let dg = $('#tt');
                            dg.datagrid('enableFilter');
                            dg.datagrid('load');
                            $('#add').window('close');
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                });
            }

            /**
             * 提交询价
             */
            function commitInquiry(obj) {
                $('#add').window('close');
                obj.oaStatus = '1'
                $.ajax({
                    type: "post",
                    dataType: "json",
                    url: 'rd/program/oaCheck',
                    data: JSON.stringify(obj),
                    contentType: "application/json",
                    success: function (data) {
                        if (data.code != 60200) {
                            $.messager.alert('消息', data.msg);
                        } else {
                            $.messager.alert('消息', data.msg);
                            let dg = $('#tt');
                            dg.datagrid('enableFilter');
                            dg.datagrid('load');

                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                })
            }

            /**
             *保存询价书的ajax方法
             */
            function saveInquiryAjax(obj, action) {
                $.ajax({
                    type: "post",
                    dataType: "json",
                    url: 'rd/program/oaCheck',
                    data: JSON.stringify(obj),
                    contentType: "application/json",
                    success: function (data) {
                        if (data.code != 60200) {
                            $.messager.alert('消息', data.msg);
                        } else {
                            const result = data.data
                            // 保存附件
                            saveAttch(obj.gramId, obj, action)
                            if ('save' == action) {
                                $.messager.alert('消息', data.msg);
                                let dg = $('#tt');
                                dg.datagrid('enableFilter');
                                dg.datagrid('load');
                            }
                            $('#add').window('close');


                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                })
            }

            //保存询价书
            function saveInquiry(action) {
                if (!$('#frmInquiry').form('validate')) {
                    alert('有未填写数据！');
                    return;
                }
                // 获取物资明细
                const purchaseProgramMms = $('#suppliesdetailDataGrid').datagrid('getRows')
                // 获取供应商明细
                const purchaseSupplyOffers = $('#suppliersdetailDataGrid').datagrid('getRows')
                let inqId = $('#inqId').val()
                const purchaseInquiryVO = {
                    // inqId: inqId,
                    gramId: $('#gramId').val(),
                    // gramName: $('#gramName').textbox('getValue'),
                    // inqCode: $('#inqCode').val(),
                    // inqRevealStatus: '0',
                    oaStatus: action == 'save' ? '0' : '1',
                    // inqName: $('#inqName').val(),
                    // inqOfferMode: $('#inqOfferMode').textbox('getValue'),
                    // inqDealMode: $('#inqDealMode').val(),
                    //  inqClause: $('#inqClause').textbox('getValue'),
                    // remark: $('#remark').textbox('getValue'),
                    // inqStartTime: $('#inqStartTime').datetimebox('getValue'),
                    // inqEndTime: $('#inqEndTime').datetimebox('getValue'),
                    // inqRevealTime: $('#inqRevealTime').datetimebox('getValue'),
                    //   inqActualTime: $('#inqActualTime').datebox('getValue'),
                    //  inqActualId: $('#inqActualId').val(),
                    //  inqActualName: $('#inqActualName').val(),
                    // purchaseSupplyOffers: purchaseSupplyOffers,
                    // purchaseProgramMms: purchaseProgramMms,
                }
                saveInquiryAjax(purchaseInquiryVO, action)
            }

            /************文件处理部分*************/

            /**
             * 保存附件
             */

            function saveAttch(row, obj, action) {

                let saveNum = 0
                if (selectedFileList.length > 0) {
                    $.each(selectedFileList, function (index, item) {
                        load();
                        var dataform = new FormData();
                        dataform.append("file", item);
                        var xmlhttp = null;
                        if (window.XMLHttpRequest) { // code for all new browsers
                            xmlhttp = new XMLHttpRequest();
                        } else if (window.ActiveXObject) {// code for IE5 and IE6
                            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        if (xmlhttp != null) {
                            xmlhttp.open("POST", "api/file/springUpload?fileRow=" + row
                                + "&fileTable=rd_inquiry&fileName="
                                + item.name, true);
                            xmlhttp.setRequestHeader('token', localStorage.getItem('token'));
                            xmlhttp.setRequestHeader('userType', localStorage.getItem('userType'));
                            xmlhttp.send(dataform);
                            xmlhttp.onreadystatechange = callbackMethods;
                        } else {
                            alert("你的浏览器版本不兼容，请使用更高版本的浏览器");
                        }

                        function callbackMethods() {
                            if (xmlhttp.readyState == 4) {
                                if (xmlhttp.status == 200) {
                                    saveNum += 1
                                }
                                if (saveNum == selectedFileList.length) {
                                    disLoad();
                                    if ('submit' == action) {
                                        commitInquiry(obj)
                                    }
                                }
                            } else {
                                if (xmlhttp.status == 500) {
                                }
                            }
                        }
                    });
                } else {
                    if ('submit' == action) {
                        commitInquiry(obj)
                    }
                }
            }

            function sleep(ms) {
                var start = Date.now(), end = start + ms;
                while (Date.now() < end);
                return;
            }

            /**
             *文件框改变事件
             */
            function changeFile() {
                var files = $("#uploadpicker").prop("files");
                $.each(
                    files,
                    function (index, item) {
                        let choiseFile = $("#checkfileList>li");
                        if (choiseFile.length > 0) {//文件去重
                            let count = 0;
                            $.each(choiseFile, function (index1, item1) {
                                if (item.name == item1.innerText) {
                                    count++;
                                }
                            });
                            if (count == 0) {
                                if (checkFileLength(item.size)) {
                                    if (item.name.includes('&') || item.name.includes(' ')) {
                                        alert('文件名不能包含&、空格等特殊字符！');
                                        return;
                                    }
                                    $("#checkfileList")
                                        .append(
                                            "<li class=\"fileinfo\">"
                                            + item.name
                                            + "<a style=\"display: none; color: red; margin-left: 10px;\" href=\"javascript:void(0)\" onclick=\"RemoveFile(this,'"
                                            + item.name
                                            + "')\">删除</a>"
                                            + "</li>");
                                    selectedFileList.push(item);
                                    console.log('selectedFileList>>>', selectedFileList.length)
                                    AddMoushover();
                                }
                            }
                        } else {
                            if (checkFileLength(item.size)) {
                                if (item.name.includes('&') || item.name.includes(' ')) {
                                    alert('文件名不能包含&、空格等特殊字符！');
                                    return;
                                }
                                $("#checkfileList")
                                    .append(
                                        "<li class=\"fileinfo\">"
                                        + item.name
                                        + "<a style=\"display: none; color: red; margin-left: 10px;\" href=\"javascript:void(0)\" onclick=\"RemoveFile(this,'"
                                        + item.name
                                        + "')\">删除</a>"
                                        + "</li>");
                                selectedFileList.push(item);
                                // 										sselectedFileNameList.push(item.name);
                                AddMoushover();
                            }
                        }
                    });
            }

            /**
             *    判断文件是否超过限制大小
             * @param fileLen
             * @returns {boolean}
             */
            function checkFileLength(fileLen) {
                if (fileLen > 102400000) {
                    $.messager.alert("提示", "上传文件大小不能超过100M", "error");
                    return false;
                }
                return true;
            }

            /**
             * //添加鼠标经过事件，鼠标划过时显示“删除”
             * @constructor
             */
            function AddMoushover() {
                $(".fileinfo").hover(function () {
                    $(this).find("a").last().css("display", "");
                }, function () {
                    $(this).find("a").last().css("display", "none");
                });
            }

            /**
             *  移除已选择的文件
             */

            function RemoveFile(obj, fileId) {

                $.messager.confirm("提示", "确认删除当前文件?", function (e) {
                    if (e) {
                        let index = $("#checkfileList>li").index($(obj).parent());
                        selectedFileList.splice(index, 1);
                        $(obj).parent().remove();
                        // 					var index1 = $.inArray(filename, sselectedFileNameList);
                        // 					sselectedFileNameList.splice(index1, 1);
                        $.ajax({
                            type: "post",
                            url: 'file/deleteFile?fileId=' + fileId,
                            success: function (data) {
                                $.messager.alert('消息', data);
                            },
                            error: function (XMLHttpRequest, textStatus,
                                errorThrown) {
                                $.messager.alert('消息', errorThrown);
                            }
                        });
                    }
                });
            }

            /**
             * 取得该条数据所属的文件列表
             * @param row
             */
            function getFileList(row) {
                $.ajax({
                    type: "post",
                    url: "file/getFileList",
                    data: {
                        fileTable: "rd_inquiry",
                        fileRow: row
                    },
                    success: function (data) {
                        const dataArray = eval(data);
                        initFile(dataArray);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $.messager.alert('消息', errorThrown);
                    }
                });
            }

            /**
             * 初始化该条数据的文件列表
             * @param dataArray
             */
            function initFile(dataArray) {
                $("#checkfileList").empty();
                // 			sselectedFileNameList = [];
                selectedFileList = [];
                dataArray
                    .forEach(function (e, i, a) {
                        $("#checkfileList")
                            .append(
                                "<li class=\"fileinfo\">"
                                + "<a style=\" color: blue; margin-left: 30px;\" href=\"javascript:void(0)\" onclick=\"downloadFile('" + e.FILE_NAME + "','"
                                + e.FILE_ID
                                + "')\">"
                                + e.FILE_NAME
                                + "</a>"
                                + "<a style=\"display: none; color: red; margin-left: 30px;\" href=\"javascript:void(0)\" onclick=\"RemoveFile(this,'"
                                + e.FILE_NAME + "')\">删除</a>"
                                + "</li>");
                        // 						sselectedFileNameList.push(e.FILE_NAME);
                        AddMoushover();
                    });
            }

            function downloadFile(fileName, fileRow) {
                let url = 'api/file/download?id=' + fileRow
                let xhr = new XMLHttpRequest()
                xhr.open('GET', url, true)
                xhr.setRequestHeader('token', localStorage.getItem('token'));
                xhr.setRequestHeader('userType', localStorage.getItem('userType'));
                xhr.responseType = 'blob'
                xhr.onload = function (data) {
                    console.log('data,,,,' + data)
                    if (this.status == 200) {
                        let blob = this.response
                        let reader = new FileReader()
                        reader.readAsDataURL(blob)
                        reader.onload = function (e) {
                            let a = document.createElement('a')
                            a.download = fileName
                            a.href = e.target.result
                            $('body').append(a)
                            a.click()
                            $(a).remove()
                        }
                    } else {

                    }
                }
                xhr.send()
            }
        </script>

        </html>